The present disclosure generally relates to query processing in database systems, and more particularly relates to a method and system for processing queries in a multi-schema JSON document store.
JSON document stores (e.g., Cloudant and MongoDB) are widely applied in backend data storage systems for many types of applications, such as mobile and web-based applications. In these types of applications, developers often release applications, updates, and upgrades, as quickly as possible. Such application products are often released in an iterative way in which a previous schema used for storing application data is changed or evolved to a new schema. This creates a serious data management problem in which each release increases the number of different versions of related schemas for various data files used by the iterative releases of an application product.
To try to solve the schema change problem for such application products, a conventional solution has used a schema-mapping tool (e.g., Apple iCloud xcode) to migrate all data to the new schema. This migration exercise involves great effort of engineering work and data migration cost. In other words, such traditional solutions cannot support multi-version schema based applications. Even worse, during the process of data migration, the service typically suffers from a service downtime.
Applications, such as mobile and web-based applications, that use JSON documents stored in JSON document stores, have been able to freely adjust their JSON document schema with requirement changes of the user application, and without involving data migration costs. Unfortunately, such applications suffer from the problem of supporting multiple versions of schemas for JSON documents stored in a JSON document store.